package com.vehiclemanagement.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vehiclemanagement.entity.ETCCard;

import java.util.List;

/**
 * ETC卡服务接口
 */
public interface IETCCardService extends IService<ETCCard> {

    /**
     * 分页查询ETC卡列表
     *
     * @param current 当前页
     * @param size 每页记录数
     * @param searchTerm 搜索关键字
     * @param status 状态筛选
     * @return 分页数据
     */
    IPage<ETCCard> listETCCards(int current, int size, String searchTerm, String status);

    /**
     * 根据ID获取ETC卡信息
     *
     * @param id ETC卡ID
     * @return ETC卡信息
     */
    ETCCard getETCCardById(Long id);

    /**
     * 添加ETC卡
     *
     * @param etcCard ETC卡信息
     * @return 是否添加成功
     */
    boolean addETCCard(ETCCard etcCard);

    /**
     * 更新ETC卡信息
     *
     * @param etcCard ETC卡信息
     * @return 是否更新成功
     */
    boolean updateETCCard(ETCCard etcCard);

    /**
     * 删除ETC卡
     *
     * @param id ETC卡ID
     * @return 是否删除成功
     */
    boolean deleteETCCard(Long id);

    /**
     * 获取所有ETC卡类型
     *
     * @return 卡类型列表
     */
    List<String> getCardTypes();

    /**
     * 获取所有状态类型
     *
     * @return 状态类型列表
     */
    List<String> getStatusTypes();

    /**
     * 检查卡号是否存在
     *
     * @param cardNumber 卡号
     * @param excludeId 排除的ID（用于更新时检查）
     * @return 是否存在
     */
    boolean checkCardNumberExists(String cardNumber, Long excludeId);
} 